package cn.sangedon.review.common.service.data;

import cn.sangedon.review.common.domain.data.StockDayInfo;
import cn.sangedon.review.common.query.data.StockDayInfoQuery;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;

/**
 * @author dongliangqiong
 * @description 针对表【tb_stock_day_info(k线数据表)】的数据库操作Service
 * @createDate 2022-08-25 12:41:41
 */
public interface StockDayInfoService extends IService<StockDayInfo> {

    /**
     * 根据条件获取日交易数据列表
     *
     * @param stockDayInfoQuery
     * @return
     */
    Map<String, Object> listByCondition(StockDayInfoQuery stockDayInfoQuery);

    /**
     * 根据条件获取日交易数据列表
     *
     * @param stockDayInfoQuery
     * @return
     */
    List<StockDayInfo> getStockDayInfos(StockDayInfoQuery stockDayInfoQuery);

    /**
     * 根据条件查询日交易数据数量
     *
     * @param stockDayInfoQuery
     * @return
     */
    Long countStockDayInfos(StockDayInfoQuery stockDayInfoQuery);

    /**
     * 获取某个交易日的日交易数据
     *
     * @param time 交易日时间,格式:yyyy-MM-dd
     * @param type 类型，1：time交易日交易数据，2：大于等于time交易日交易数据，3：大于time交易日交易数据
     * @return
     */
    List<StockDayInfo> getStockDayInfos(String time, Integer type);

    /**
     * 获取最新数据的日期
     *
     * @return
     */
    String getLatestDate();

    /**
     * 搜索股票日交易数据
     *
     * @param keyword
     * @param num
     * @return
     */
    List<StockDayInfo> search(String keyword, Integer num);

    /**
     * 补充每日行情的昨日收盘价
     *
     * @param tradeDate
     */
    void fillData(String tradeDate);
}
